繼承 (Inheritance)
繼承允許建立新的合約,這些合約可以基於已有的合約進行擴展和修改。子合約會自動繼承父合約的所有狀態變量和函數。
在這個例子中,Child 繼承了 Parent 合約。這意味著 Child 合約擁有 Parent 的所有狀態變量 (parentValue) 和函數 (setParentValue()),並可以自己添加新的狀態變量和函數。
重寫 (Override)
子合約可以重寫父合約的函數,但必須使用 override 關鍵字,父合約中的函數需要標註為 virtual。
多態 (Polymorphism)
多態指的是當一個父合約引用子合約的實例時,子合約可以通過父合約的指針調用它的函數。
在這個例子中,Test 合約的 callGetMessage 函數可以接受 Parent 類型的參數,並調用 getMessage。即使傳入的是 Child 合約的實例,它會調用 Child 中重寫的函數。